home *** CD-ROM | disk | FTP | other *** search
-
-
- These notes correspond to *pcl-system-date* "5/22/87 May 22nd, 1987".
-
- The notes from the last release are stored as 4-29-notes.text
-
- This release runs in:
- CMU Lisp
- ExCL
- Lucid
- Symbolics Common Lisp (Genera)
- Vaxlisp (2.0)
- Xerox Common Lisp (Lyric Release)
- Kyoto Common Lisp (5.2)
- TI Common Lisp (Release 3)
-
- TI release 2 should also be working soon, I will announce that when it
- happens.
-
-
- Note once again, that Xerox Lisp users should FTP all the source files
- from /pub/pcl/ as well as all the dfasl files from /pub/pcl/xerox/.
- Included in the xerox specific directory is a file called PCL-ENV, which
- provides some simple environment support for using PCL in Xerox Lisp.
- You must load PCL BEFORE loading pcl-env.
-
-
- MAJOR CHANGES IN THIS RELEASE:
-
- ---
- it is possible to forward reference classes in a defclass (or
- add-named-class) form. This means it is possible to say:
-
- (defclass foo (bar) (i j k))
-
- (defclass bar () (x y z))
-
- Rather than having to put the in the "right" order.
-
- NOTE: the full-on error checking for this is not finished yet.
- don't try to break it by doing things like:
-
- (defclass foo (bar) (i j k))
- (make-instance 'foo)
- (defclass bar () (x y z))
-
- ---
- print-instance has been renamed to print-object
-
- ---
- the defclass and class-definition protocol has changed. some of the
- effects of this change are:
-
- * ADD-NAMED-CLASS is a true functional interface for defclass, so for
- example,
-
- (defclass foo () (x y z) (:accessor-prefix foo-))
-
- is equivalent to:
-
- (add-named-class (class-prototype (class-named 'class))
- 'foo
- ()
- '(x y z)
- '((:accessor-prefix foo-)))
-
- * defclass (and add-named-class) now undefined accessor methods, reader
- methods and constructors which 'went away'. For example:
-
- (defclass foo () (x y z) (:reader-prefix foo-))
-
- defines methods on the generic functions foo-x foo-y and foo-z.
-
- but if you then evaluated the defclass form:
-
- (defclass foo () (x y z))
-
- those reader methods will be removed from the generic functions
- foo-x foo-y and foo-z.
-
- Similarly constructors which 'went away' will be undefined.
-
- ---
- writer methods generated by the :accessor and :accessor-prefix options
- now pay attention to the :type slot-option. So,
-
- (defclass foo () ((x :accessor foo-x :type symbol)))
-
- (defvar *foo-1* (make-instance 'foo))
-
- (setf (foo-x *foo-1*) 'bar) ; is OK
-
- (setf (foo-x *foo-1*) 10) ; signals an error
-
- ---
- There are fewer built-in classes. Specifically, only the following
- Common Lisp types have classes:
-
- ARRAY BIT-VECTOR CHARACTER COMPLEX CONS FLOAT INTEGER LIST
- NULL NUMBER RATIO RATIONAL SEQUENCE STRING SYMBOL T VECTOR
-
- * In a future release the subtypes of FLOAT may have classes, that issue
- is still under discussion.
-
- * Some ports of PCL also define classes for:
-
- HASH-TABLE PACKAGE PATHNAME RANDOM-STATE READTABLE STREAM
-
- it depends on how the type is represented in that Lisp's type system.
-
-
- ---
- The with-slots option :use-slot-value is now obsolete. You should use
- the :use-accessors option as specified in the CLOS spec instead.
-
- with-slot forms which did not use the :use-slot-value option are OK,
- you don't have to touch them.
-
- with-slot forms which used :USE-SLOT-VALUE T should be changed to say
- :USE-ACCESSORS NIL.
-
- with-slot forms which used :USE-SLOT-VALUE NIL should be changed to
- use neither option, or if you insist :USE-ACCESSORS T
-
-
-
-